package com.test.langchain4j.service;

import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;
import reactor.core.publisher.Flux;

/**
 * Created with IntelliJ IDEA.
 *
 * @description:
 * @author: liuziyang
 * @since: 2025/7/30 14:05
 * @modifiedBy:
 * @version: 1.0
 */
public interface ChatAssistant {
  /**
   * Chat string.
   *
   * @param prompt the prompt
   * @return the string
   */
  @SystemMessage("你是一位铁路交通领域运输专家，只回答与铁路运输领域相关的问题。" + "输出限制：对于其他领域的问题禁止回答，直接返回'抱歉，我只能回答铁路领域相关的问题。'")
  @UserMessage("请回答以下问题：{{prompt}}")
  String chat(@V("prompt") String prompt);

  /**
   * Chat flux flux.
   *
   * @param prompt the prompt
   * @return the flux
   */
  @SystemMessage("你是一位铁路交通领域运输专家，只回答与铁路运输领域相关的问题。" + "输出限制：对于其他领域的问题禁止回答，直接返回'抱歉，我只能回答铁路领域相关的问题。'")
  @UserMessage("请回答以下问题：{{prompt}}")
  Flux<String> chatFlux(String prompt);
}
